<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 数组降维
        // 写一个函数,接收一个数组作为参数,返回结果为已经降维的数组
        // 如下这个数组经过函数的处理侯得到[1,2,3,4,5]这个结果
        const arr = [1, [[2], [3, [4]], 5]]

        function jiangWei(input) {
            const stack = [...input];
            const res = [];
            while (stack.length) {
                // 使用 pop 从 stack 中取出并移除值
                const next = stack.pop();
                if (Array.isArray(next)) {
                    stack.push(...next);
                } else {
                    res.push(next);
                }
            }
            // 使用 reverse 恢复原数组的顺序
            return res.reverse();
        }
        console.log(jiangWei(arr));
    </script>
</body>

</html>